500
|
How can I get the number of results after a filter is applied

PROCEDURE OnClick(oList)
oList:ClearFilter()
RETURN
PROCEDURE OnFilterChange(oList)
DevOut( "Items.MatchItemCount" )
DevOut( Transform(oList:Items:MatchItemCount(),"") )
DevOut( Transform(oList:FormatABC("value < 0 ? `filter applied: ` + abs(value + 1) + ` result(s)` : `no filter`",oList:Items:MatchItemCount()),"") )
RETURN
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oColumn
LOCAL oItems
LOCAL oList
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:Click := {|| OnClick(oList)} /*Occurs when the user presses and then releases the left mouse button over the list control.*/
oList:FilterChange := {|| OnFilterChange(oList)} /*Occurs when filter was changed.*/
oList:BeginUpdate()
oList:Columns():Add("Item"):DisplayFilterButton := .T.
oColumn := oList:Columns():Add("Pos")
oColumn:AllowSizing := .F.
oColumn:AllowSort := .F.
oColumn:Width := 32
oColumn:FormatColumn := "1 apos ``"
oColumn:Position := 0
oItems := oList:Items()
oItems:Add("Item A")
oItems:Add("Item B")
oItems:Add("Item C")
oList:FilterBarPromptVisible := 1/*exFilterBarPromptVisible*/
oList:FilterBarPromptPattern := "Item"
oList:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
499
|
How can I programmatically clear the control's filter
PROCEDURE OnClick(oList)
oList:ClearFilter()
RETURN
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oColumn
LOCAL oItems
LOCAL oList
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:Click := {|| OnClick(oList)} /*Occurs when the user presses and then releases the left mouse button over the list control.*/
oList:BeginUpdate()
oList:Columns():Add("Item"):DisplayFilterButton := .T.
oColumn := oList:Columns():Add("Pos")
oColumn:AllowSizing := .F.
oColumn:AllowSort := .F.
oColumn:Width := 32
oColumn:FormatColumn := "1 apos ``"
oColumn:Position := 0
oItems := oList:Items()
oItems:Add("Item A")
oItems:Add("Item B")
oItems:Add("Item C")
oList:FilterBarPromptVisible := 1/*exFilterBarPromptVisible*/
oList:FilterBarPromptPattern := "B"
oList:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
498
|
Is it possible to prevent closing the control's filter bar, so it is always shown (prompt-combined)

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oColumn,oColumn1
LOCAL oItems
LOCAL oList
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:BeginUpdate()
oList:Columns():Add("Item"):DisplayFilterButton := .T.
oColumn := oList:Columns():Add("Pos")
oColumn:AllowSizing := .F.
oColumn:AllowSort := .F.
oColumn:Width := 32
oColumn:FormatColumn := "1 apos ``"
oColumn:Position := 0
oItems := oList:Items()
oItems:Add("Item A")
oItems:Add("Item B")
oItems:Add("Item C")
oList:FilterBarPromptPattern := "B"
oList:FilterBarPromptVisible := 3/*exFilterBarVisible+exFilterBarPromptVisible*/
oColumn1 := oList:Columns:Item(0)
oColumn1:FilterType := 240/*exFilter*/
oColumn1:Filter := "Item B"
oList:ApplyFilter()
oList:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
497
|
Is it possible to prevent closing the control's filter bar, so it is always shown (prompt)

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oColumn
LOCAL oItems
LOCAL oList
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:BeginUpdate()
oList:Columns():Add("Item"):DisplayFilterButton := .T.
oColumn := oList:Columns():Add("Pos")
oColumn:AllowSizing := .F.
oColumn:AllowSort := .F.
oColumn:Width := 32
oColumn:FormatColumn := "1 apos ``"
oColumn:Position := 0
oItems := oList:Items()
oItems:Add("Item A")
oItems:Add("Item B")
oItems:Add("Item C")
oList:FilterBarPromptVisible := 1/*exFilterBarPromptVisible*/
oList:FilterBarPromptPattern := "B"
oList:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
496
|
Is it possible to prevent closing the control's filter bar, so it is always shown

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oColumn,oColumn1
LOCAL oItems
LOCAL oList
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:BeginUpdate()
oList:Columns():Add("Item"):DisplayFilterButton := .T.
oColumn := oList:Columns():Add("Pos")
oColumn:AllowSizing := .F.
oColumn:AllowSort := .F.
oColumn:Width := 32
oColumn:FormatColumn := "1 apos ``"
oColumn:Position := 0
oItems := oList:Items()
oItems:Add("Item A")
oItems:Add("Item B")
oItems:Add("Item C")
oList:FilterBarCaption := "len(value) = 0 ? `<fgcolor=808080>no filter` : value"
oList:FilterBarPromptVisible := 2/*exFilterBarVisible*/
oColumn1 := oList:Columns:Item(0)
oColumn1:FilterType := 240/*exFilter*/
oColumn1:Filter := "Item B"
oList:ApplyFilter()
oList:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
495
|
How can I find if the control is running in DPI mode
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oList
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
DevOut( Transform(oList:FormatABC("dpi = 1 ? `normal/stretch mode` : `dpi mode`"),"") )
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
494
|
I am using single selection, the question is if possible to select an item only when the user releases the mouse, as currently it selects the item as soon as the user clicks it
PROCEDURE OnSelectionChanged(oList)
DevOut( "SelectionChanged" )
RETURN
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oItems
LOCAL oList
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:SelectionChanged := {|| OnSelectionChanged(oList)} /*Fired after a new item is selected.*/
oList:BeginUpdate()
oList:FreezeEvents(.T.)
oList:SingleSel := .T.
oList:SelectOnRelease := .T.
oList:Columns():Add("Column"):FormatColumn := "1 apos `A-Z`"
oItems := oList:Items()
oItems:Add("")
oItems:SetProperty("SelectItem",oItems:Add(""),.T.)
oItems:Add("")
oList:FreezeEvents(.F.)
oList:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
493
|
Is it possible to select nothing
PROCEDURE OnSelectionChanged(oList)
DevOut( "SelectionChanged" )
RETURN
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oItems
LOCAL oList
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:SelectionChanged := {|| OnSelectionChanged(oList)} /*Fired after a new item is selected.*/
oList:BeginUpdate()
oList:FreezeEvents(.T.)
oList:AllowSelectNothing := .T.
oList:Columns():Add("Column"):FormatColumn := "1 apos `A-Z`"
oItems := oList:Items()
oItems:Add("")
oItems:SetProperty("SelectItem",oItems:Add(""),.T.)
oItems:Add("")
oList:FreezeEvents(.F.)
oList:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
492
|
How do I change the drop down filter icon/button (black)

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oAppearance
LOCAL oColumn
LOCAL oItems
LOCAL oList
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:BeginUpdate()
oAppearance := oList:VisualAppearance()
oAppearance:Add(1,"gBFLBCJwBAEHhEJAAEhABXUIQAAYAQGKIcBiAKBQAGYBIJDEMgzDDAUBjKKocQTC4AIQjCK4JDKHYJRpHEZyCA8EhqGASRAFUQBYiWE4oSpLABQaK0ZwIGyRIrkGQgQgmPYDSDNU4zVIEEglBI0TDNczhNDENgtGYaJqHIYpZBcM40TKkEZoSIITZcRrOEBiRL1S0RBhGcRUHZlWzdN64LhuK47UrWdD/XhdVzXRbjfz1Oq+bxve48Br7A5yYThdr4LhOFQ3RjIL4xbIcUwGe6VZhjOLZXjmO49T69HTtOCYBEBA")
oList:SetProperty("Background",32/*exCursorHoverColumn*/,-1)
oList:SetProperty("Background",0/*exHeaderFilterBarButton*/,0x1000000)
oList:SetProperty("Background",26/*exBackColorFilter*/,AutomationTranslateColor( GraMakeRGBColor ( { 0,0,1 } ) , .F. ))
oList:SetProperty("Background",27/*exForeColorFilter*/,AutomationTranslateColor( GraMakeRGBColor ( { 255,255,255 } ) , .F. ))
oList:SetProperty("Description",25/*exFilterBarExclude*/,"<bgcolor 0><fgcolor ffffff> Exclude </fgcolor></bgcolor>")
oList:HeaderAppearance := 0/*None2*/
oList:SetProperty("BackColorHeader",AutomationTranslateColor( GraMakeRGBColor ( { 0,0,0 } ) , .F. ))
oList:SetProperty("ForeColorHeader",AutomationTranslateColor( GraMakeRGBColor ( { 255,255,255 } ) , .F. ))
oList:HeaderVisible := .T.
oList:SetProperty("BackColorLevelHeader",oList:BackColor())
oColumn := oList:Columns():Add("Filter")
oColumn:FilterList := 8448/*exShowExclude+exShowCheckBox*/
oColumn:DisplayFilterButton := .T.
oColumn:AllowSort := .F.
oColumn:AllowDragging := .F.
oItems := oList:Items()
oItems:Add("One")
oItems:Add("Two")
oItems:Add("Three")
oList:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
491
|
How do I change the drop down filter icon/button (white)

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oAppearance
LOCAL oColumn
LOCAL oList
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:BeginUpdate()
oAppearance := oList:VisualAppearance()
oAppearance:Add(2,"gBFLBCJwBAEHhEJAAEhABX8GACAADACAxSDEMQBQKAAzQFAYbhgHCGAAGQaBUgmFgAQhFcZQSKUOQTDKNYykCIRSDUJYkSZEIyjBI8ExXFqNACkGKwYgmNYiTLAcgANJ0WBaGIZJ4gOT5fDKMoEDRRYADFCscwxJybQAqGQKKb+VgAVY/cTyBIAEQSKA0TDOQ5TSKWB4JPZQRBEbZMNBtBIUJquKaqShdQJCU5FdY3Xblez9P7AMBwLFEC4NQ8YNYuPhjR4dRTIMhvVAsUArFh8Zg9GZZFjmDIDT4ydBLTQwcyVIKnP5qOa6XbmPoCQDYKxZHYxPzVDa3axuL76dqCAT7XrXNy1TbNRrzQKfcJqfCbdw2YaDZLOOT3fjuI4hhKaRzFAHJ+jYQ4xHuY4gHuGIXGeExqC8Tp6C+PoEm+G5ImycRgh0XwvDGa5rgOeoejyXwnFeQp2mkf5ClgBB9gCWIYAwfYAEKV58mkdwOggNArgOXY2EWLoDkKOA0mg" +;
"bhOGgZApgaSBIHWSYHSmbApgYThmESZYJkIeIkgeCpfliLIHgpMIcmUYYYmODAlg2SI4mWfRfGOEguDcCRjFYAJihCQhJBSDoRmONgKEcI4kFCEJhhOVYTmYnAlEAQhWBMJYJGYWoWmWSR2F6F5lnkWAQhUAgpEieRWEuSYkjWGpmkmNhuhuZwJkYcocmaaYkjyEhngnUA6lEFAlAEgI=")
oAppearance:Add(1,"CP:2 -14 -4 -2 4")
oList:SetProperty("Background",0/*exHeaderFilterBarButton*/,0x1000000)
oList:SetProperty("Background",32/*exCursorHoverColumn*/,oList:BackColor())
oList:HeaderAppearance := 0/*None2*/
oList:SetProperty("BackColorHeader",AutomationTranslateColor( GraMakeRGBColor ( { 255,255,255 } ) , .F. ))
oList:HeaderVisible := .T.
oList:HeaderHeight := 24
oList:SetProperty("BackColorLevelHeader",oList:BackColor())
oColumn := oList:Columns():Add("Filter")
oColumn:DisplayFilterButton := .T.
oColumn:AllowSort := .F.
oColumn:AllowDragging := .F.
oList:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
490
|
Can I display the column's multiple-lines caption vertically oriented (method 2)

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oColumn,oColumn1,oColumn2
LOCAL oColumns
LOCAL oItems
LOCAL oList
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:BeginUpdate()
oList:HeaderHeight := 48
oList:ColumnAutoResize := .T.
oColumns := oList:Columns()
oColumns:Add("And others ...")
oColumn := oColumns:Add("")
oColumn:HTMLCaption := "First Column"
oColumn:HeaderVertical := .T.
oColumn:Width := 36
oColumn:AllowSizing := .F.
oColumn:SetProperty("Def",0/*exCellHasCheckBox*/,.T.)
oColumn:SetProperty("Def",48/*exCellPaddingLeft*/,8)
oColumn:Position := 0
oColumn1 := oColumns:Add("")
oColumn1:HTMLCaption := "<c><b>Second Column"
oColumn1:HeaderVertical := .T.
oColumn1:Width := 36
oColumn1:AllowSizing := .F.
oColumn1:SetProperty("Def",0/*exCellHasCheckBox*/,.T.)
oColumn1:SetProperty("Def",48/*exCellPaddingLeft*/,8)
oColumn1:Position := 1
oColumn2 := oColumns:Add("")
oColumn2:HTMLCaption := "<r>Third Column"
oColumn2:HeaderVertical := .T.
oColumn2:Width := 36
oColumn2:AllowSizing := .F.
oColumn2:SetProperty("Def",0/*exCellHasCheckBox*/,.T.)
oColumn2:SetProperty("Def",48/*exCellPaddingLeft*/,8)
oColumn2:Position := 2
oItems := oList:Items()
oItems:SetProperty("CellState",oItems:Add("Item 1"),3,1)
oItems:SetProperty("CellState",oItems:Add("Item 2"),2,1)
oItems:SetProperty("CellState",oItems:Add("Item 3"),1,1)
oList:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
489
|
Can I display the column's multiple-lines caption vertically oriented (method 1)

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oColumn,oColumn1,oColumn2
LOCAL oColumns
LOCAL oItems
LOCAL oList
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:BeginUpdate()
oList:HeaderHeight := 48
oList:HeaderSingleLine := .F.
oList:ColumnAutoResize := .T.
oColumns := oList:Columns()
oColumns:Add("And others ...")
oColumn := oColumns:Add("First Column")
oColumn:HeaderVertical := .T.
oColumn:Width := 36
oColumn:AllowSizing := .F.
oColumn:SetProperty("Def",0/*exCellHasCheckBox*/,.T.)
oColumn:SetProperty("Def",48/*exCellPaddingLeft*/,8)
oColumn:Position := 0
oColumn1 := oColumns:Add("Second Column")
oColumn1:HeaderBold := .T.
oColumn1:HeaderVertical := .T.
oColumn1:Width := 36
oColumn1:AllowSizing := .F.
oColumn1:SetProperty("Def",0/*exCellHasCheckBox*/,.T.)
oColumn1:SetProperty("Def",48/*exCellPaddingLeft*/,8)
oColumn1:Position := 1
oColumn2 := oColumns:Add("Third Column")
oColumn2:HeaderVertical := .T.
oColumn2:Width := 36
oColumn2:AllowSizing := .F.
oColumn2:SetProperty("Def",0/*exCellHasCheckBox*/,.T.)
oColumn2:SetProperty("Def",48/*exCellPaddingLeft*/,8)
oColumn2:Position := 2
oItems := oList:Items()
oItems:SetProperty("CellState",oItems:Add("Item 1"),3,1)
oItems:SetProperty("CellState",oItems:Add("Item 2"),2,1)
oItems:SetProperty("CellState",oItems:Add("Item 3"),1,1)
oList:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
488
|
Can I display the column's caption vertically oriented (method 2)

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oColumn,oColumn1,oColumn2
LOCAL oColumns
LOCAL oItems
LOCAL oList
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:BeginUpdate()
oList:HeaderHeight := 48
oList:ColumnAutoResize := .T.
oColumns := oList:Columns()
oColumns:Add("And others ...")
oColumn := oColumns:Add("")
oColumn:HTMLCaption := "First"
oColumn:HeaderVertical := .T.
oColumn:Width := 20
oColumn:AllowSizing := .F.
oColumn:SetProperty("Def",0/*exCellHasCheckBox*/,.T.)
oColumn:Position := 0
oColumn1 := oColumns:Add("")
oColumn1:HTMLCaption := "<c><b>Second"
oColumn1:HeaderVertical := .T.
oColumn1:Width := 20
oColumn1:AllowSizing := .F.
oColumn1:SetProperty("Def",0/*exCellHasCheckBox*/,.T.)
oColumn1:Position := 1
oColumn2 := oColumns:Add("")
oColumn2:HTMLCaption := "<r>Third"
oColumn2:HeaderVertical := .T.
oColumn2:Width := 20
oColumn2:AllowSizing := .F.
oColumn2:SetProperty("Def",0/*exCellHasCheckBox*/,.T.)
oColumn2:Position := 2
oItems := oList:Items()
oItems:SetProperty("CellState",oItems:Add("Item 1"),3,1)
oItems:SetProperty("CellState",oItems:Add("Item 2"),2,1)
oItems:SetProperty("CellState",oItems:Add("Item 3"),1,1)
oList:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
487
|
Can I display the column's caption vertically oriented (method 1)

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oColumn,oColumn1,oColumn2
LOCAL oColumns
LOCAL oItems
LOCAL oList
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:BeginUpdate()
oList:HeaderHeight := 48
oList:ColumnAutoResize := .T.
oColumns := oList:Columns()
oColumns:Add("And others ...")
oColumn := oColumns:Add("First")
oColumn:HeaderVertical := .T.
oColumn:Width := 20
oColumn:AllowSizing := .F.
oColumn:SetProperty("Def",0/*exCellHasCheckBox*/,.T.)
oColumn:Position := 0
oColumn1 := oColumns:Add("Second")
oColumn1:HeaderBold := .T.
oColumn1:HeaderVertical := .T.
oColumn1:Width := 20
oColumn1:AllowSizing := .F.
oColumn1:SetProperty("Def",0/*exCellHasCheckBox*/,.T.)
oColumn1:Position := 1
oColumn2 := oColumns:Add("Third")
oColumn2:HeaderVertical := .T.
oColumn2:Width := 20
oColumn2:AllowSizing := .F.
oColumn2:SetProperty("Def",0/*exCellHasCheckBox*/,.T.)
oColumn2:Position := 2
oItems := oList:Items()
oItems:SetProperty("CellState",oItems:Add("Item 1"),3,1)
oItems:SetProperty("CellState",oItems:Add("Item 2"),2,1)
oItems:SetProperty("CellState",oItems:Add("Item 3"),1,1)
oList:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
486
|
How do I get sorted the column as string, numeric, date, date and time. Also how can it be applied to drop down filter panel

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oColumn,oColumn1,oColumn2,oColumn3,oColumn4
LOCAL oItems
LOCAL oList
LOCAL h
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:BeginUpdate()
oColumn := oList:Columns():Add("Date")
oColumn:SortType := 2/*SortDate*/
oColumn:DisplayFilterButton := .T.
oColumn:DisplayFilterPattern := .F.
oColumn:DisplayFilterDate := .T.
oColumn:FilterList := 1296/*exShowFocusItem+exShowCheckBox+exSortItemsDesc*/
oColumn1 := oList:Columns():Add("DateTime")
oColumn1:SortType := 3/*SortDateTime*/
oColumn1:DisplayFilterButton := .T.
oColumn1:DisplayFilterPattern := .F.
oColumn1:FilterList := 1296/*exShowFocusItem+exShowCheckBox+exSortItemsDesc*/
oColumn2 := oList:Columns():Add("Time")
oColumn2:SortType := 4/*SortTime*/
oColumn2:DisplayFilterButton := .T.
oColumn2:DisplayFilterPattern := .F.
oColumn2:FilterList := 1296/*exShowFocusItem+exShowCheckBox+exSortItemsDesc*/
oColumn2:FormatColumn := "time(value)"
oColumn3 := oList:Columns():Add("Numeric")
oColumn3:SortType := 1/*SortNumeric*/
oColumn3:DisplayFilterButton := .T.
oColumn3:FilterList := 1296/*exShowFocusItem+exShowCheckBox+exSortItemsDesc*/
oColumn4 := oList:Columns():Add("String")
oColumn4:DisplayFilterButton := .T.
oColumn4:FilterList := 1296/*exShowFocusItem+exShowCheckBox+exSortItemsDesc*/
oItems := oList:Items()
h := oItems:Add("01/27/2010")
oItems:SetProperty("Caption",h,1,"01/27/2010 10:00:00")
oItems:SetProperty("Caption",h,2,oItems:Caption(h,1))
oItems:SetProperty("Caption",h,3,1)
oItems:SetProperty("Caption",h,4,oItems:Caption(h,3))
h := oItems:Add("01/27/2011")
oItems:SetProperty("Caption",h,1,"01/27/2011 09:00:00")
oItems:SetProperty("Caption",h,2,oItems:Caption(h,1))
oItems:SetProperty("Caption",h,3,11)
oItems:SetProperty("Caption",h,4,oItems:Caption(h,3))
h := oItems:Add("11/02/2010")
oItems:SetProperty("Caption",h,1,"11/02/2010 09:00:00")
oItems:SetProperty("Caption",h,2,oItems:Caption(h,1))
oItems:SetProperty("Caption",h,3,2)
oItems:SetProperty("Caption",h,4,oItems:Caption(h,3))
oList:Columns:Item("DateTime"):DisplayFilterDate := .F.
oList:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
485
|
How can I get ride / hide the image being dragged by OLE Drag and Drop
PROCEDURE OnOLEStartDrag(oList,Data,AllowedEffects)
/*Data.SetData("data to drag")*/
AllowedEffects := 1
RETURN
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oItems
LOCAL oList
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:OLEStartDrag := {|Data,AllowedEffects| OnOLEStartDrag(oList,Data,AllowedEffects)} /*Occurs when the OLEDrag method is called.*/
oList:OLEDropMode := 1/*exOLEDropManual*/
oList:SetProperty("Background",34/*exDragDropAfter*/,AutomationTranslateColor( GraMakeRGBColor ( { 255,255,255 } ) , .F. ))
oList:Columns():Add("Default")
oItems := oList:Items()
oItems:Add("Item 1")
oItems:Add("Item 2")
oItems:Add("Item 3")
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
484
|
Is there an event that fires on the exList control when the order of items in the list is changed via dragging
PROCEDURE OnAllowAutoDrag(oList,Item,InsertA,InsertB,Cancel)
LOCAL oItems
oItems := oList:Items()
DevOut( "After" )
DevOut( Transform(oItems:Caption(InsertA,0),"") )
DevOut( "Before" )
DevOut( Transform(oItems:Caption(InsertB,0),"") )
Cancel := .T.
RETURN
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oItems
LOCAL oList
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:AllowAutoDrag := {|Item,InsertA,InsertB,Cancel| OnAllowAutoDrag(oList,Item,InsertA,InsertB,Cancel)} /*Occurs when the user drags the item between InsertA and InsertB.*/
oList:BeginUpdate()
oList:AutoDrag := 1/*exAutoDragPosition*/
oList:Columns():Add("Task")
oItems := oList:Items()
oItems:Add("Item 1")
oItems:Add("Item 2")
oItems:Add("Item 3")
oItems:Add("Item 4")
oList:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
483
|
How can I export checked items only

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oColumns
LOCAL oItems
LOCAL oList
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:BeginUpdate()
oColumns := oList:Columns()
oColumns:Add("C1"):SetProperty("Def",0/*exCellHasCheckBox*/,.T.)
oColumns:Add("C2"):FormatColumn := "1 index `A-Z`"
oColumns:Add("C3"):FormatColumn := "100 index ``"
oItems := oList:Items()
oItems:Add("Item 1")
oItems:SetProperty("CellState",oItems:Add("Item 2"),0,1)
oItems:SetProperty("CellState",oItems:Add("Item 3"),0,1)
oList:EndUpdate()
DevOut( "Export CSV Checked Items Only:" )
DevOut( Transform(oList:Export("","chk"),"") )
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
482
|
How can I export a hidden column

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oColumn,oColumn1
LOCAL oColumns
LOCAL oItems
LOCAL oList
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:BeginUpdate()
oColumns := oList:Columns()
oColumns:Add("C1")
oColumn := oColumns:Add("C2")
oColumn:FormatColumn := "1 index `A-Z`"
oColumn:Visible := .F.
oColumn1 := oColumns:Add("C3")
oColumn1:FormatColumn := "100 index ``"
oColumn1:Visible := .F.
oItems := oList:Items()
oItems:Add("Item 1")
oItems:Add("Item 2")
oItems:Add("Item 3")
oList:EndUpdate()
DevOut( "Export CSV Hidden Columns (1,2):" )
DevOut( Transform(oList:Export("","|1,2"),"") )
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
481
|
Is it possible to have a different alignment for parts of the cell's caption

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oColumn
LOCAL oItems
LOCAL oList
LOCAL h
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:BeginUpdate()
oList:DrawGridLines := -1/*exAllLines*/
oColumn := oList:Columns():Add("Default")
oColumn:SetProperty("Def",0/*exCellHasCheckBox*/,.T.)
oItems := oList:Items()
oItems:SetProperty("CellHAlignment",oItems:Add("all-left"),0,0/*LeftAlignment*/)
oItems:SetProperty("CellHAlignment",oItems:Add("all-center"),0,1/*CenterAlignment*/)
oItems:SetProperty("CellHAlignment",oItems:Add("all-right"),0,2/*RightAlignment*/)
h := oItems:Add("left<c>center<r>right")
oItems:SetProperty("CaptionFormat",h,0,1/*exHTML*/)
oList:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
480
|
I have a column with Def(exCellSingleLine) property on False, word-wrapping, and I am wondering if possible to update the column's content while user is resizing it
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oColumn,oColumn1
LOCAL oColumns
LOCAL oItems
LOCAL oList
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:BeginUpdate()
oColumns := oList:Columns()
oColumn := oColumns:Add("MultipleLine")
oColumn:Width := 32
oColumn:SetProperty("Def",16/*exCellSingleLine*/,.F.)
oColumn:SetProperty("Def",64/*exColumnResizeContiguously*/,.T.)
oColumn1 := oColumns:Add("SingleLine")
oColumn1:SetProperty("Def",16/*exCellSingleLine*/,.F.)
oItems := oList:Items()
oItems:SetProperty("Caption",oItems:Add("This is a bit of long text that should break the line"),1,"This is a bit of long text that should break the line")
oList:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
479
|
How can I hide the cell's tooltip
PROCEDURE OnToolTip(oList,ItemIndex,ColIndex,Visible,X,Y,CX,CY)
DevOut( "The tooltip is about to be shown" )
Visible := .F.
RETURN
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oItems
LOCAL oList
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:ToolTip := {|ItemIndex,ColIndex,Visible,X,Y,CX,CY| OnToolTip(oList,ItemIndex,ColIndex,Visible,X,Y,CX,CY)} /*Fired when the control prepares the object's tooltip.*/
oList:BeginUpdate()
oList:Columns():Add("Def")
oItems := oList:Items()
oItems:SetProperty("CellToolTip",oItems:Add("Item 1"),0,"This is a bit of text that's shown when cursor hovers the item.")
oItems:SetProperty("CellToolTip",oItems:Add("Item 2"),0,"This is a bit of text that's shown when cursor hovers the item.")
oItems:SetProperty("CellToolTip",oItems:Add("Item 3"),0,"This is a bit of text that's shown when cursor hovers the item.")
oList:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
478
|
How can I find out if an item is selected or unselected
PROCEDURE OnMouseMove(oList,Button,Shift,X,Y)
LOCAL oItems
LOCAL i
i := oList:ItemFromPoint(-1,-1,c,hit)
oItems := oList:Items()
DevOut( Transform(oItems:SelectItem(i),"") )
RETURN
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oItems
LOCAL oList
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:MouseMove := {|Button,Shift,X,Y| OnMouseMove(oList,Button,Shift,X,Y)} /*Occurs when the user moves the mouse.*/
oList:Columns():Add("Header")
oItems := oList:Items()
oItems:Add("Item 1")
oItems:SetProperty("SelectItem",oItems:Add("Item 2"),.T.)
oItems:Add("Item 3")
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
477
|
How do I sort the index column as numeric

PROCEDURE OnAddItem(oList,Item)
LOCAL oItems
oItems := oList:Items()
oItems:SetProperty("CellData",Item,1,Item)
RETURN
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oColumn,oColumn1
LOCAL oItems
LOCAL oList
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:AddItem := {|Item| OnAddItem(oList,Item)} /*Occurs after a new Item is inserted to Items collection.*/
oList:BeginUpdate()
oList:DrawGridLines := -1/*exAllLines*/
oList:ColumnAutoResize := .T.
oList:ShowFocusRect := .F.
oColumn := oList:Columns():Add("Next")
oColumn:SetProperty("Def",48/*exCellPaddingLeft*/,4)
oColumn:SetProperty("Def",52/*exHeaderPaddingLeft*/,4)
oColumn1 := oList:Columns():Add("Index")
oColumn1:AllowSizing := .F.
oColumn1:Width := 48
oColumn1:FormatColumn := "(((0 := (1 index ``)) mod 3) case ( default: ``; 0 : `<r><fgcolor=B0B0B0>`; 1: ``; 2 : `<c><fgcolor=808080>` )) + str(=:0)"
oColumn1:SetProperty("Def",17/*exCaptionFormat*/,1)
oColumn1:SortType := 5/*SortUserData*/
oColumn1:Position := 0
oItems := oList:Items()
oItems:Add("Item 1")
oItems:Add("Item 2")
oItems:Add("Item 3")
oItems:Add("Item 4")
oItems:Add("Item 5")
oItems:Add("Item 6")
oItems:Add("Item 7")
oItems:Add("Item 8")
oItems:Add("Item 9")
oItems:Add("Item 10")
oList:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
476
|
How can I put icons/images into buttons

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oColumn
LOCAL oItems
LOCAL oList
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:BeginUpdate()
oList:ColumnAutoResize := .T.
oList:Images("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yNAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=")
oColumn := oList:Columns():Add("C+B")
oColumn:AllowSizing := .F.
oColumn:Width := 48
oColumn:FormatColumn := "` <img>` + ( 1 + (1 index ``) mod 3 ) + `</img> `"
oColumn:SetProperty("Def",17/*exCaptionFormat*/,1)
oColumn:SetProperty("Def",0/*exCellHasCheckBox*/,.T.)
oColumn:SetProperty("Def",2/*exCellHasButton*/,.T.)
oColumn:SetProperty("Def",3/*exCellHasButton+exCellHasRadioButton*/,.T.)
oList:Columns():Add("")
oList:DrawGridLines := 2/*exVLines*/
oList:DefaultItemHeight := 20
oItems := oList:Items()
oItems:Add("")
oItems:Add("")
oItems:Add("")
oItems:Add("")
oItems:Add("")
oItems:Add("")
oItems:Add("")
oItems:Add("")
oList:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
475
|
Is it possible to have a CheckBox and Button TOGETHER on all cells in a column

PROCEDURE OnCellButtonClick(oList,Item,ColIndex)
DevOut( "CellButtonClick" )
DevOut( Transform(Item,"") )
RETURN
PROCEDURE OnCellStateChanged(oList,Item,ColIndex)
DevOut( "CellStateChanged" )
DevOut( Transform(Item,"") )
RETURN
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oColumn,oColumn1
LOCAL oItems
LOCAL oList
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:CellButtonClick := {|Item,ColIndex| OnCellButtonClick(oList,Item,ColIndex)} /*Fired after the user clicks the cell's button.*/
oList:CellStateChanged := {|Item,ColIndex| OnCellStateChanged(oList,Item,ColIndex)} /*Fired after cell's state is changed.*/
oList:BeginUpdate()
oList:ColumnAutoResize := .T.
oColumn := oList:Columns():Add("")
oColumn:AllowSizing := .F.
oColumn:Width := 32
oColumn:FormatColumn := "1 index ``"
oColumn1 := oList:Columns():Add("Def")
oColumn1:AllowSizing := .F.
oColumn1:Width := 48
oColumn1:FormatColumn := "` `"
oColumn1:SetProperty("Def",0/*exCellHasCheckBox*/,.T.)
oColumn1:SetProperty("Def",2/*exCellHasButton*/,.T.)
oColumn1:SetProperty("Def",3/*exCellHasButton+exCellHasRadioButton*/,.T.)
oList:Columns():Add("")
oItems := oList:Items()
oItems:Add("")
oItems:Add("")
oItems:Add("")
oItems:Add("")
oItems:Add("")
oItems:Add("")
oItems:Add("")
oItems:Add("")
oList:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
474
|
Does filtering work with umlauts / accents characters
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oColumn
LOCAL oItems
LOCAL oList
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:BeginUpdate()
oColumn := oList:Columns():Add("Names")
oColumn:DisplayFilterButton := .T.
oColumn:FilterType := 3/*exPattern*/
oItems := oList:Items()
oItems:Add("Mantel")
oItems:Add("Mechanik")
oItems:Add("Motor")
oItems:Add("Murks")
oItems:Add("Märchen")
oItems:Add("Möhren")
oItems:Add("Mühle")
oItems:Add("Sérigraphie")
oList:Columns:Item(0):Filter := "*ä*"
oList:ApplyFilter()
oList:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
473
|
Can I set the search box / filterbarprompt to invisible, so I can use my own input and *string* via VBA
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oColumns
LOCAL oItems
LOCAL oList
LOCAL h0
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:BeginUpdate()
oList:ColumnAutoResize := .T.
oList:ContinueColumnScroll := .F.
oList:MarkSearchColumn := .F.
oList:SearchColumnIndex := 1
oList:FilterBarHeight := 0
oList:FilterBarPromptVisible := -1/*0xffffd0e8+exFilterBarTop+exFilterBarCompact+exFilterBarShowCloseOnRight+exFilterBarShowCloseIfRequired+exFilterBarToggle+exFilterBarSingleLine+exFilterBarCaptionVisible+exFilterBarVisible+exFilterBarPromptVisible*/
oColumns := oList:Columns()
oColumns:Add("Name"):Width := 96
oColumns:Add("Title"):Width := 96
oColumns:Add("City")
oItems := oList:Items()
h0 := oItems:Add("Nancy Davolio")
oItems:SetProperty("Caption",h0,1,"Sales Representative")
oItems:SetProperty("Caption",h0,2,"Seattle")
h0 := oItems:Add("Andrew Fuller")
oItems:SetProperty("Caption",h0,1,"Vice President, Sales")
oItems:SetProperty("Caption",h0,2,"Tacoma")
oItems:SetProperty("SelectItem",h0,.T.)
h0 := oItems:Add("Janet Leverling")
oItems:SetProperty("Caption",h0,1,"Sales Representative")
oItems:SetProperty("Caption",h0,2,"Kirkland")
h0 := oItems:Add("Margaret Peacock")
oItems:SetProperty("Caption",h0,1,"Sales Representative")
oItems:SetProperty("Caption",h0,2,"Redmond")
h0 := oItems:Add("Steven Buchanan")
oItems:SetProperty("Caption",h0,1,"Sales Manager")
oItems:SetProperty("Caption",h0,2,"London")
h0 := oItems:Add("Michael Suyama")
oItems:SetProperty("Caption",h0,1,"Sales Representative")
oItems:SetProperty("Caption",h0,2,"London")
h0 := oItems:Add("Robert King")
oItems:SetProperty("Caption",h0,1,"Sales Representative")
oItems:SetProperty("Caption",h0,2,"London")
h0 := oItems:Add("Laura Callahan")
oItems:SetProperty("Caption",h0,1,"Inside Sales Coordinator")
oItems:SetProperty("Caption",h0,2,"Seattle")
h0 := oItems:Add("Anne Dodsworth")
oItems:SetProperty("Caption",h0,1,"Sales Representative")
oItems:SetProperty("Caption",h0,2,"London")
oList:FilterBarPromptPattern := "London"
oList:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
472
|
How can I align captions of items with checkbox, with items with no checkbox

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oItems
LOCAL oList
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:BeginUpdate()
oList:Columns():Add("Default")
oItems := oList:Items()
oItems:SetProperty("CellImages",oItems:Add(0),0,"1")
oItems:SetProperty("CellHasCheckBox",oItems:Add(1),0,.T.)
oItems:SetProperty("CellImages",oItems:Add(2),0,"1")
oList:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
471
|
How do I programmatically scroll the control (method 2)
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oList
LOCAL rs
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:BeginUpdate()
oList:ColumnAutoResize := .F.
oList:ContinueColumnScroll := .F.
rs := CreateObject("ADOR.Recordset")
rs:Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExList\Sample\Access\SAMPLE.ACCDB",3/*adOpenStatic*/,3/*adLockOptimistic*/)
oList:DataSource := rs
oList:Layout := "vscroll = 10"
oList:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
470
|
How do I programmatically scroll the control (method 1)
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oList
LOCAL rs
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:BeginUpdate()
oList:ColumnAutoResize := .F.
oList:ContinueColumnScroll := .F.
rs := CreateObject("ADOR.Recordset")
rs:Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExList\Sample\Access\SAMPLE.ACCDB",3/*adOpenStatic*/,3/*adLockOptimistic*/)
oList:DataSource := rs
oList:SetProperty("ScrollPos",.T.,10)
oList:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
469
|
How can I decode the Layout property
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oColumns
LOCAL oPrint
LOCAL oItems
LOCAL oList
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:BeginUpdate()
oColumns := oList:Columns()
oColumns:Add("C1")
oColumns:Add("C2"):Position := 1
oItems := oList:Items()
oItems:SetProperty("Caption",oItems:Add("SubItem 1.1"),1,"SubItem 1.2")
oItems:SetProperty("Caption",oItems:Add("SubItem 2.1"),1,"SubItem 2.2")
oList:Columns:Item("C2"):SortOrder := 2/*SortDescending*/
oList:EndUpdate()
DevOut( "Encoded:" )
DevOut( oList:Layout() )
oPrint := CreateObject("Exontrol.Print")
DevOut( "Decoded: " )
DevOut( oPrint:Decode64TextW(oList:Layout()) )
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
468
|
Does the title of the cell's tooltip supports HTML format

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oColumn
LOCAL oItems
LOCAL oList
LOCAL h
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:BeginUpdate()
oColumn := oList:Columns():Add("")
oColumn:Caption := ""
oColumn:HTMLCaption := "Column"
oItems := oList:Items()
h := oItems:Add("tooltip w/h different title")
oItems:SetProperty("CellToolTip",h,0,"<c><b><fgcolor=FF0000>Title</fgcolor></b><br>This is bit of text that's shown when the user hovers the cell. This shows the title centered with a different color.")
oList:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
467
|
How do I specify a different title for the cell's tooltip

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oColumn
LOCAL oItems
LOCAL oList
LOCAL h
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:BeginUpdate()
oColumn := oList:Columns():Add("")
oColumn:Caption := "This is the title"
oColumn:HTMLCaption := "Column"
oItems := oList:Items()
h := oItems:Add("tooltip w/h different title")
oItems:SetProperty("CellToolTip",h,0,"This is bit of text that's shown when the user hovers the cell.")
oList:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
466
|
The cell's tooltip displays the column's caption in its title. How can I get ride of that

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oColumn
LOCAL oColumns
LOCAL oItems
LOCAL oList
LOCAL h
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:BeginUpdate()
oColumns := oList:Columns()
oColumns:Add("C1")
oColumns:Add("C2")
oItems := oList:Items()
h := oItems:Add("tooltip w/h caption")
oItems:SetProperty("CellToolTip",h,0,"This is bit of text that's shown when the user hovers the cell. This shows the column's caption in the title.")
oItems:SetProperty("Caption",h,1,"tooltip no caption")
oItems:SetProperty("CellToolTip",h,1,"This is bit of text that's shown when the user hovers the cell. This shows no column's caption in the title.")
oColumn := oList:Columns():Item("C2")
oColumn:HTMLCaption := oColumn:Caption()
oColumn:Caption := ""
oList:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
465
|
When you click the cell it takes some time before the edit box appears, can this delay be removed

PROCEDURE OnClick(oList)
LOCAL h
h := oList:ItemFromPoint(-1,-1,ColIndex,HitTestInfo)
oList:Items():Edit(h,ColIndex)
RETURN
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oItems
LOCAL oList
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:Click := {|| OnClick(oList)} /*Occurs when the user presses and then releases the left mouse button over the list control.*/
oList:AllowEdit := .T.
oList:Columns():Add("Default")
oItems := oList:Items()
oItems:Add("")
oItems:Add("Edit")
oItems:Add("")
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
464
|
How can I programmatically show the column's filter

PROCEDURE OnRClick(oList)
LOCAL i
i := oList:ItemFromPoint(-1,-1,c,hit)
oList:Columns:Item(c):ShowFilter("-1,-1,128,128")
RETURN
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oColumn
LOCAL oItems
LOCAL oList
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:RClick := {|| OnRClick(oList)} /*Fired when right mouse button is clicked*/
oList:BeginUpdate()
oList:ShowFocusRect := .F.
oColumn := oList:Columns():Add("Items ")
oColumn:DisplayFilterPattern := .F.
oColumn:FilterList := 9472/*exShowExclude+exShowFocusItem+exShowCheckBox*/
oItems := oList:Items()
oItems:Add("Item 1")
oItems:Add("Item 2")
oItems:Add("Item 3")
oList:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
463
|
I want to be able to click on one of the headers, and sort by other column. How can I do that

PROCEDURE OnColumnClick(oList,Column)
/*Column.SortOrder = 1*/
oList:SortOnClick := -1/*exDefaultSort*/
oList:Columns:Item("Sort"):SortOrder := 1/*SortAscending*/
oList:SortOnClick := 1/*exUserSort*/
RETURN
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oItems
LOCAL oList
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:ColumnClick := {|Column| OnColumnClick(oList,Column)} /*Fired after the user clicks on column's header.*/
oList:BeginUpdate()
oList:SortOnClick := 1/*exUserSort*/
oList:Columns():Add("Items")
oList:Columns():Add("Sort"):Visible := .F.
oItems := oList:Items()
oItems:SetProperty("Caption",oItems:Add("Item 1 (3)"),1,3)
oItems:SetProperty("Caption",oItems:Add("Item 2 (1)"),1,1)
oItems:SetProperty("Caption",oItems:Add("Item 3 (2)"),1,2)
oList:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
462
|
How can I sort by two-columns, one by date and one by time

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oColumn
LOCAL oColumns
LOCAL oItems
LOCAL oList
LOCAL h
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:BeginUpdate()
oList:SingleSort := .F.
oColumns := oList:Columns()
oColumns:Add("Index"):FormatColumn := "1 index ``"
oColumns:Add("Date"):SortType := 2/*SortDate*/
oColumn := oColumns:Add("Time")
oColumn:SortType := 4/*SortTime*/
oColumn:FormatColumn := "time(value)"
oItems := oList:Items()
h := oItems:Add(0)
oItems:SetProperty("Caption",h,1,"01/01/2001")
oItems:SetProperty("Caption",h,2,"01/01/2001 10:00:00")
h := oItems:Add(0)
oItems:SetProperty("Caption",h,1,"12/31/2000")
oItems:SetProperty("Caption",h,2,"01/01/2001 10:00:00")
h := oItems:Add(0)
oItems:SetProperty("Caption",h,1,"01/01/2001")
oItems:SetProperty("Caption",h,2,"01/01/2001 06:00:00")
h := oItems:Add(0)
oItems:SetProperty("Caption",h,1,"12/31/2000")
oItems:SetProperty("Caption",h,2,"01/01/2001 08:00:00")
h := oItems:Add(0)
oItems:SetProperty("Caption",h,1,"01/01/2001")
oItems:SetProperty("Caption",h,2,"01/01/2001 08:00:00")
h := oItems:Add(0)
oItems:SetProperty("Caption",h,1,"12/31/2000")
oItems:SetProperty("Caption",h,2,"01/01/2001 06:00:00")
oList:Layout := "multiplesort=" + CHR(34) + "C1:1 C2:1" + CHR(34) + ""
oList:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
461
|
How can I connect to a DBF file
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oList
LOCAL rs
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:BeginUpdate()
oList:ColumnAutoResize := .F.
oList:ContinueColumnScroll := .F.
oList:MarkSearchColumn := .F.
rs := CreateObject("ADODB.Recordset")
rs:Open("Select * From foxcode.DBF","Provider=vfpoledb;Data Source=C:\Program Files\Microsoft Visual FoxPro 9\",3/*adOpenStatic*/,3/*adLockOptimistic*/)
oList:DataSource := rs
oList:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
460
|
Does your control supports scrolling by touching the screen

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oList
LOCAL rs
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:ColumnAutoResize := .F.
rs := CreateObject("ADOR.Recordset")
rs:Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExList\Sample\Access\SAMPLE.ACCDB",3/*adOpenStatic*/,3/*adLockOptimistic*/)
oList:DataSource := rs
oList:ContinueColumnScroll := .T.
oList:ScrollBySingleLine := .T.
oList:AutoDrag := 4112/*exAutoDragScrollOnShortTouch+exAutoDragScroll*/
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
459
|
How can I enlarge the size of the control's scroll bars, for using on touch screens

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oList
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:ScrollBars := 15/*DisableBoth*/
oList:ScrollWidth := 32
oList:ScrollHeight := 32
oList:ScrollButtonHeight := 32
oList:ScrollButtonWidth := 32
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
458
|
Is there a syntax for conditional formatting of items, based on CellState/CellStateChange

PROCEDURE OnCellStateChanged(oList,Item,ColIndex)
LOCAL oItems
oItems := oList:Items()
oItems:SetProperty("Caption",Item,2,oItems:CellState(Item,0))
RETURN
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oColumn
LOCAL var_ConditionalFormat
LOCAL oItems
LOCAL oList
LOCAL h
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:CellStateChanged := {|Item,ColIndex| OnCellStateChanged(oList,Item,ColIndex)} /*Fired after cell's state is changed.*/
oList:BeginUpdate()
oList:ShowFocusRect := .F.
oList:MarkSearchColumn := .F.
oList:SelBackMode := 1/*exTransparent*/
var_ConditionalFormat := oList:ConditionalFormats:Add("%2 != 0")
var_ConditionalFormat:Bold := .T.
var_ConditionalFormat:SetProperty("ForeColor",AutomationTranslateColor( GraMakeRGBColor ( { 255,0,0 } ) , .F. ))
var_ConditionalFormat:ApplyTo := -1/*exFormatToItems*/
oColumn := oList:Columns():Add("")
oColumn:SetProperty("Def",0/*exCellHasCheckBox*/,.T.)
oColumn:Width := 16
oColumn:AllowSizing := .F.
oList:Columns():Add("Information")
oList:Columns():Add("Hidden"):Visible := .F.
oItems := oList:Items()
oItems:SetProperty("Caption",oItems:Add(""),1,"This is a bit of text associated")
h := oItems:Add("")
oItems:SetProperty("Caption",h,1,"This is a bit of text associated")
oItems:SetProperty("CellState",h,0,1)
oItems:SetProperty("Caption",oItems:Add(""),1,"This is a bit of text associated")
oList:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
457
|
How can I display the caption bellow to picture

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oItems
LOCAL oList
LOCAL h
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:BeginUpdate()
oList:ScrollBySingleLine := .T.
oList:SetProperty("HTMLPicture","p1","c:\exontrol\images\zipdisk.gif")
oList:SetProperty("HTMLPicture","p2","c:\exontrol\images\auction.gif")
oList:Columns():Add("Default")
oItems := oList:Items()
h := oItems:Add("<c><img>p1</img><br><c>your caption1")
oItems:SetProperty("CellSingleLine",h,0,0/*exCaptionWordWrap*/)
oItems:SetProperty("CaptionFormat",h,0,1/*exHTML*/)
h := oItems:Add("<c><img>p2</img><br><c>your caption2")
oItems:SetProperty("CellSingleLine",h,0,0/*exCaptionWordWrap*/)
oItems:SetProperty("CaptionFormat",h,0,1/*exHTML*/)
oList:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
456
|
How can I add a vertical padding

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oColumn
LOCAL oItems
LOCAL oList
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:BeginUpdate()
oList:DrawGridLines := -1/*exAllLines*/
oColumn := oList:Columns():Add("Padding")
oColumn:SetProperty("Def",0/*exCellHasCheckBox*/,.T.)
oColumn:SetProperty("Def",16/*exCellSingleLine*/,.F.)
oColumn:SetProperty("Def",48/*exCellPaddingLeft*/,6)
oColumn:SetProperty("Def",49/*exCellPaddingRight*/,6)
oColumn:SetProperty("Def",50/*exCellPaddingTop*/,6)
oColumn:SetProperty("Def",51/*exCellPaddingBottom*/,6)
oItems := oList:Items()
oItems:Add("padding")
oItems:Add("padding")
oList:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
455
|
How do you embed HTML options into the anchor click string

PROCEDURE OnAnchorClick(oList,AnchorID,Options)
DevOut( Transform(AnchorID,"") )
DevOut( Transform(Options,"") )
RETURN
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oColumns
LOCAL oItems
LOCAL oList
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:AnchorClick := {|AnchorID,Options| OnAnchorClick(oList,AnchorID,Options)} /*Occurs when an anchor element is clicked.*/
oList:BeginUpdate()
oColumns := oList:Columns()
oColumns:Add("Car"):SetProperty("Def",17/*exCaptionFormat*/,1)
oItems := oList:Items()
oItems:Add("<a mazda_1;options for 1>Mazda <b>1</b></a>")
oItems:Add("<a mazda_2;options for 2>Mazda <b>2</b></a>")
oItems:Add("<a mazda_3;options for 3a>Mazda <b>3.a</b></a>")
oItems:Add("<a mazda_3;options for 3b>Mazda <b>3.b</b></a>")
oList:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
454
|
I have the rows with different background color, and when I select the item it takes the color of the SelBackColor, and therefore is no longer visible behind the color. Is there any option to make the item's color being visible (method 3)

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oItems
LOCAL oList
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:BeginUpdate()
oList:VisualAppearance():Add(1,"gBFLBCJwBAEHhEJAEGg4BVEIQAAYAQGKIYBkAKBQAGaAoDDMOQwQwAAxjGKEEwsACEIrjKCRShyCYZRhGcTSBCIZBqEqSZLiEZRQCWIAzATGYBRfIUEgjBM6ExwG78egBHp/ZpkACIJJAaRjHQdJxGKKMQB9DIhCZpeKhWgkKIJBzOEyBRC4ERBGqNGrsIgLEqWZpnWhaNpWXYTLyBN64LhuK46g53O6wLxvK6hEr2dJ/YBcIAOfghf4NQ7EMRxLC8Mw3BDvYDkOAABAIgI=")
oList:SetProperty("SelBackColor",0x1fffffe)
oList:ShowFocusRect := .F.
oList:Columns():Add("Items")
oItems := oList:Items()
oItems:SetProperty("ItemBackColor",oItems:Add("red"),AutomationTranslateColor( GraMakeRGBColor ( { 255,0,0 } ) , .F. ))
oItems:SetProperty("ItemBackColor",oItems:Add("blue"),AutomationTranslateColor( GraMakeRGBColor ( { 0,0,255 } ) , .F. ))
oItems:SetProperty("ItemBackColor",oItems:Add("green"),AutomationTranslateColor( GraMakeRGBColor ( { 0,255,0 } ) , .F. ))
oList:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
453
|
I have the rows with different background color, and when I select the item it takes the color of the SelBackColor, and therefore is no longer visible behind the color. Is there any option to make the item's color being visible (method 2)

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oItems
LOCAL oList
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:BeginUpdate()
oList:SelBackMode := 1/*exTransparent*/
oList:ShowFocusRect := .F.
oList:Columns():Add("Items")
oItems := oList:Items()
oItems:SetProperty("ItemBackColor",oItems:Add("red"),AutomationTranslateColor( GraMakeRGBColor ( { 255,0,0 } ) , .F. ))
oItems:SetProperty("ItemBackColor",oItems:Add("blue"),AutomationTranslateColor( GraMakeRGBColor ( { 0,0,255 } ) , .F. ))
oItems:SetProperty("ItemBackColor",oItems:Add("green"),AutomationTranslateColor( GraMakeRGBColor ( { 0,255,0 } ) , .F. ))
oList:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
452
|
I have the rows with different background color, and when I select the item it takes the color of the SelBackColor, and therefore is no longer visible behind the color. Is there any option to make the item's color being visible (method 1)

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oItems
LOCAL oList
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:BeginUpdate()
oList:SetProperty("SelBackColor",oList:BackColor())
oList:SetProperty("SelForeColor",oList:ForeColor())
oList:ShowFocusRect := .T.
oList:Columns():Add("Items")
oItems := oList:Items()
oItems:SetProperty("ItemBackColor",oItems:Add("red"),AutomationTranslateColor( GraMakeRGBColor ( { 255,0,0 } ) , .F. ))
oItems:SetProperty("ItemBackColor",oItems:Add("blue"),AutomationTranslateColor( GraMakeRGBColor ( { 0,0,255 } ) , .F. ))
oItems:SetProperty("ItemBackColor",oItems:Add("green"),AutomationTranslateColor( GraMakeRGBColor ( { 0,255,0 } ) , .F. ))
oList:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
451
|
I am using the FormatColumn property, but is it also possible to have a blank field when the value is '0'. I've tried the 'leading zero' flag in the FormatColumn, but that did not work

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oList
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:Columns():Add("Currency"):FormatColumn := "int(value) != 0 ? (value format `0||3|,`) : ``"
oList:Items():Add(123456789)
oList:Items():Add(1234)
oList:Items():Add(0)
oList:Items():Add(2345)
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
450
|
Do you have a VB sample on how to use .FormatColumn to show this number '123456789' like '123,456,789'

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oList
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:Columns():Add("Currency"):FormatColumn := "value format `0||3|,`"
oList:Items():Add(123456789)
oList:Items():Add(1234)
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
449
|
Is it possible to change the image while do OLE Drag and Drop operations

PROCEDURE OnOLEStartDrag(oList,Data,AllowedEffects)
/*Data.SetData(Items.FocusItem)*/
RETURN
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oList
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:OLEStartDrag := {|Data,AllowedEffects| OnOLEStartDrag(oList,Data,AllowedEffects)} /*Occurs when the OLEDrag method is called.*/
oList:Columns():Add("Default")
oList:Items():Add("Item 1")
oList:Items():Add("Item 2")
oList:OLEDropMode := 1/*exOLEDropManual*/
oList:SetProperty("HTMLPicture","OLEDragDropImage","C:\Program Files\Exontrol\ExList\Sample\VB\UNICODE\unicode.jpg")
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
448
|
Is it possible to change the image while do OLE Drag and Drop operations

PROCEDURE OnOLEStartDrag(oList,Data,AllowedEffects)
/*Data.SetData(Items.FocusItem)*/
RETURN
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oList
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:OLEStartDrag := {|Data,AllowedEffects| OnOLEStartDrag(oList,Data,AllowedEffects)} /*Occurs when the OLEDrag method is called.*/
oList:Columns():Add("Default")
oList:Items():Add("Item 1")
oList:Items():Add("Item 2")
oList:OLEDropMode := 1/*exOLEDropManual*/
oList:VisualAppearance():Add(1,"C:\Program Files\Exontrol\ExG2antt\Sample\EBN\xpbselIcon.ebn")
oList:SetProperty("Background",34/*exDragDropAfter*/,0x1000000)
oList:SetProperty("Background",33/*exDragDropBefore*/,AutomationTranslateColor( GraMakeRGBColor ( { 255,255,255 } ) , .F. ))
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
447
|
How can copy and paste the selection to Microsoft Word, any OLE compliant application, as a snapshot
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oItems
LOCAL oList
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:BeginUpdate()
oList:VisualAppearance():Add(1,"c:\exontrol\images\normal.ebn")
oList:SetProperty("HTMLPicture","p1","c:\exontrol\images\card.png")
oList:SetProperty("HTMLPicture","p2","c:\exontrol\images\sun.png")
oList:AutoDrag := 11/*exAutoDragCopySnapShot*/
oList:ShowFocusRect := .F.
oList:DefaultItemHeight := 26
oList:Columns():Add("Task")
oItems := oList:Items()
oItems:SetProperty("CaptionFormat",oItems:Add("<img>p1:32</img> Group 1"),0,1/*exHTML*/)
oItems:SetProperty("CaptionFormat",oItems:Add("<img>p2:32</img> Group 2"),0,1/*exHTML*/)
oList:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
446
|
How can copy and paste the selection to Microsoft Word, any OLE compliant application, as a image

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oItems
LOCAL oList
LOCAL rs
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:BeginUpdate()
oList:SetProperty("HTMLPicture","p1","c:\exontrol\images\card.png")
oList:SetProperty("HTMLPicture","p2","c:\exontrol\images\sun.png")
oList:HeaderHeight := 24
oList:DefaultItemHeight := 48
oList:DrawGridLines := -2/*0xfffffffc+exVLines*/
oList:SetProperty("GridLineColor",AutomationTranslateColor( GraMakeRGBColor ( { 240,240,240 } ) , .F. ))
oList:SelBackMode := 1/*exTransparent*/
oList:ColumnAutoResize := .F.
oList:ContinueColumnScroll := .F.
rs := CreateObject("ADOR.Recordset")
rs:Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExList\Sample\Access\SAMPLE.ACCDB",3/*adOpenStatic*/,3/*adLockOptimistic*/)
oList:DataSource := rs
oList:Columns:Item(0):SetProperty("Def",17/*exCaptionFormat*/,1)
oList:Columns:Item(0):FormatColumn := "value + ` <img>p` + (1 + (value mod 3 ) ) + `</img>`"
oList:Columns:Item(0):Width := 112
oList:AutoDrag := 10/*exAutoDragCopyImage*/
oList:SingleSel := .F.
oItems := oList:Items()
oItems:SetProperty("SelectItem",1,.T.)
oItems:SetProperty("SelectItem",2,.T.)
oItems:SetProperty("SelectItem",3,.T.)
oList:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
445
|
How can copy and paste the selection to Microsoft Word, Excel or any OLE compliant application, as a text

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oItems
LOCAL oList
LOCAL rs
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:BeginUpdate()
oList:ColumnAutoResize := .F.
oList:ContinueColumnScroll := .F.
rs := CreateObject("ADOR.Recordset")
rs:Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExList\Sample\Access\SAMPLE.ACCDB",3/*adOpenStatic*/,3/*adLockOptimistic*/)
oList:DataSource := rs
oList:AutoDrag := 9/*exAutoDragCopyText*/
oList:SingleSel := .F.
oItems := oList:Items()
oItems:SetProperty("SelectItem",1,.T.)
oItems:SetProperty("SelectItem",3,.T.)
oItems:SetProperty("SelectItem",4,.T.)
oItems:SetProperty("SelectItem",5,.T.)
oList:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
444
|
How can I change the row's position to another, by drag and drop. Is it possible

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oItems
LOCAL oList
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:BeginUpdate()
oList:AutoDrag := 1/*exAutoDragPosition*/
oList:Columns():Add("Task")
oItems := oList:Items()
oItems:Add("Item 1")
oItems:Add("Item 2")
oItems:Add("Item 3")
oItems:Add("Item 4")
oList:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
443
|
Does your control support subscript or superscript, in HTML captions

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oList
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:Columns():Add("Column"):SetProperty("Def",17/*exCaptionFormat*/,1)
oList:Items():Add("<sha ;;0>Event <b><font ;6><off -6>2<off 4>3<off 4>1")
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
442
|
Is there any property I can save and restore automatically the current setting, column position, size, and so on (2)

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oItems
LOCAL oList
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:BeginUpdate()
oList:Columns():Add("Column")
oItems := oList:Items()
oItems:Add("Item 1")
oItems:Add("Item 2")
oItems:Add("Item 3")
oList:Layout := "Select=" + CHR(34) + "0" + CHR(34) + ";SingleSort=" + CHR(34) + "C0:2" + CHR(34) + ";Columns=1"
oList:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
441
|
Is there any property I can save and restore automatically the current setting, column position, size, and so on (1)

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oItems
LOCAL oList
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:BeginUpdate()
oList:Columns():Add("Column")
oItems := oList:Items()
oItems:Add("Item 1")
oItems:Add("Item 2")
oItems:Add("Item 3")
oList:Layout := "gBjAAwAAuABmABpABsAB0ABlAByhoAPIAOEPAA9gYABoABQAgUEg0XN4AOcJicKkpujMbjsfkMFk0YhkQgUOjUEl8gjcGO0ok8KMULjEaGMcj08kQAO8oMkTNEtGwAGQAqc7gUlhh1ABtAEsk9GpEfhElgVcsMupNlnlonlaAFcr0shUsp8QPEtnVJqJhmcIhUMh0QiU5sYAqMngUSuEMw07k8Qv0SgVRrNEuVflF2jF5x9JyNEm0TjQijemyE0jE3t+YruauoAu4Az1qj9BzRn0UzksSnAA0xDjY6qnAw8OiUQ0dwzN0zWz2t7j8/xURAGNvWH6k8xlEhklhEI0O/6QAgI="
oList:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
440
|
Is there any public method to export the selected data

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oColumns
LOCAL oItems
LOCAL oList
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:BeginUpdate()
oColumns := oList:Columns()
oColumns:Add("C1")
oColumns:Add("C2"):FormatColumn := "1 index `A-Z`"
oColumns:Add("C3"):FormatColumn := "100 index ``"
oItems := oList:Items()
oItems:Add("Item 1")
oItems:SetProperty("SelectItem",oItems:Add("Item 2"),.T.)
oItems:Add("Item 3")
oList:EndUpdate()
DevOut( "Export CSV Selected Items Only:" )
DevOut( Transform(oList:Export("","sel"),"") )
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
439
|
How can I change the visual aspect of the links in the sort bar

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oColumn,oColumn1
LOCAL oList
LOCAL rs
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:BeginUpdate()
oList:ColumnAutoResize := .F.
rs := CreateObject("ADOR.Recordset")
rs:Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExList\Sample\Access\SAMPLE.ACCDB",3/*adOpenStatic*/,3/*adLockOptimistic*/)
oList:DataSource := rs
oList:SortBarHeight := 24
oList:HeaderHeight := 24
oList:SetProperty("BackColorSortBar",AutomationTranslateColor( GraMakeRGBColor ( { 240,240,240 } ) , .F. ))
oList:SetProperty("BackColorSortBarCaption",oList:BackColor())
oList:VisualAppearance():Add(1,"gBFLBCJwBAEHhEJAEGg4BdsIQAAYAQGKIYBkAKBQAGaAoDDgNw0QwAAxjMK0EwsACEIrjKCRShyCYZRhGcTSBCIZBqEqSZLiEZRQiiCYsS5GQBSFDcOwHGyQYDkCQpAAWL4tCyMc7QHKAWhrEAbJjgQYJUh+TQAAZCIJRXRQAL/K6rKwnSCQIgkUBpGKdBynEYoYxAfyESCJWyIahWAwoQjUMB1HLQAAxC5kKbkIxyBABFBdVjVeBYG78Bz+ABjEovbAMEwPBqAMwmIAZDheA4FR4AGhTXKcbxrFaXZSzKckPRoADSZq1Sg5LjDJI2ABqU6ABqNLZtJKsZS4apABrWeZ3Q7QMLdFTwA4PH6EZhxXAYbTVeaPZjQIBAgI")
oList:SortBarVisible := .T.
oList:SortBarCaption := "Drag a <b>column</b> header here to group by that column."
oColumn := oList:Columns:Item(1)
oColumn:Alignment := 1/*CenterAlignment*/
oColumn:SetProperty("Def",4/*exCellBackColor*/,15790320)
oColumn:SortOrder := -1/*0xfffffffc+SortDescending+SortAscending*/
oColumn1 := oList:Columns:Item(5)
oColumn1:Alignment := 1/*CenterAlignment*/
oColumn1:SetProperty("Def",4/*exCellBackColor*/,16119285)
oColumn1:SortOrder := -1/*0xfffffffc+SortDescending+SortAscending*/
oList:SetProperty("Background",28/*exSortBarLinkColor*/,0x1000000)
oList:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
438
|
How can I have a case-insensitive filter (exFilterDoCaseSensitive flag is not set)

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oColumn,oColumn1
LOCAL oColumns
LOCAL oItems
LOCAL oList
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:BeginUpdate()
oList:MarkSearchColumn := .F.
oColumns := oList:Columns()
oColumn := oColumns:Add("Car")
oColumn:DisplayFilterButton := .T.
oColumn:FilterType := 240/*exFilter*/
oColumn:Filter := "MAZDA"
oColumn1 := oColumns:Add("Equipment")
oColumn1:DisplayFilterButton := .T.
oColumn1:DisplayFilterPattern := .F.
oColumn1:CustomFilter := "Air Bag||*Air Bag*|||Air condition||*Air condition*|||ABS||*ABS*|||ESP||*ESP*"
oColumn1:FilterType := 3/*exPattern*/
oColumn1:Filter := "AIR BAG"
oItems := oList:Items()
oItems:SetProperty("Caption",oItems:Add("Mazda"),1,"Air Bag")
oItems:SetProperty("Caption",oItems:Add("Toyota"),1,"Air Bag,Air condition")
oItems:SetProperty("Caption",oItems:Add("Ford"),1,"Air condition")
oItems:SetProperty("Caption",oItems:Add("Nissan"),1,"Air Bag,ABS,ESP")
oItems:SetProperty("Caption",oItems:Add("Mazda"),1,"Air Bag, ABS,ESP")
oItems:SetProperty("Caption",oItems:Add("Mazda"),1,"ABS,ESP")
oList:ApplyFilter()
oList:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
437
|
How can I have a case-sensitive filter

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oColumn,oColumn1
LOCAL oColumns
LOCAL oItems
LOCAL oList
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:BeginUpdate()
oList:MarkSearchColumn := .F.
oColumns := oList:Columns()
oColumn := oColumns:Add("Car")
oColumn:DisplayFilterButton := .T.
oColumn:FilterType := 496/*exFilterDoCaseSensitive+exFilter*/
oColumn:Filter := "Mazda"
oColumn1 := oColumns:Add("Equipment")
oColumn1:DisplayFilterButton := .T.
oColumn1:DisplayFilterPattern := .F.
oColumn1:CustomFilter := "Air Bag||*Air Bag*|||Air condition||*Air condition*|||ABS||*ABS*|||ESP||*ESP*"
oColumn1:FilterType := 259/*exFilterDoCaseSensitive+exPattern*/
oColumn1:Filter := "Air Bag"
oItems := oList:Items()
oItems:SetProperty("Caption",oItems:Add("Mazda"),1,"Air Bag")
oItems:SetProperty("Caption",oItems:Add("Toyota"),1,"Air Bag,Air condition")
oItems:SetProperty("Caption",oItems:Add("Ford"),1,"Air condition")
oItems:SetProperty("Caption",oItems:Add("Nissan"),1,"Air Bag,ABS,ESP")
oItems:SetProperty("Caption",oItems:Add("Mazda"),1,"Air Bag, ABS,ESP")
oItems:SetProperty("Caption",oItems:Add("Mazda"),1,"ABS,ESP")
oList:ApplyFilter()
oList:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
436
|
I have several columns, but noticed that the filter is using AND between columns, but I need OR clause for filtering. Is it possible

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oColumn,oColumn1
LOCAL oItems
LOCAL oList
LOCAL h
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:BeginUpdate()
oColumn := oList:Columns():Add("Item")
oColumn:DisplayFilterButton := .T.
oColumn:DisplayFilterPattern := .F.
oColumn:Filter := "Child 1"
oColumn:FilterType := 240/*exFilter*/
oColumn1 := oList:Columns():Add("Date")
oColumn1:DisplayFilterButton := .T.
oColumn1:DisplayFilterPattern := .F.
oColumn1:DisplayFilterDate := .T.
oColumn1:FilterList := 9474/*exShowExclude+exShowFocusItem+exShowCheckBox+exNoItems*/
oColumn1:Filter := Transform("12/28/2010","")
oColumn1:FilterType := 4/*exDate*/
oList:FilterCriteria := "%0 or %1"
oList:SetProperty("Description",23/*exFilterBarOr*/,"<font ;18><fgcolor=FF0000>or</fgcolor></font>")
oList:SetProperty("Description",11/*exFilterBarAnd*/,"<font ;18><fgcolor=FF0000>and</fgcolor></font>")
oItems := oList:Items()
h := oItems:Add("Root 1")
oItems:SetProperty("Caption",oItems:Add("Child 1"),1,"12/27/2010")
oItems:SetProperty("Caption",oItems:Add("Child 2"),1,"12/28/2010")
h := oItems:Add("Root 2")
oItems:SetProperty("Caption",oItems:Add("Child 1"),1,"12/29/2010")
oItems:SetProperty("Caption",oItems:Add("Child 2"),1,"12/30/2010")
oList:ApplyFilter()
oList:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
435
|
Is it possible exclude the dates being selected in the drop down filter window

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oColumn
LOCAL oItems
LOCAL oList
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:BeginUpdate()
oColumn := oList:Columns():Add("Date")
oColumn:SortType := 2/*SortDate*/
oColumn:DisplayFilterButton := .T.
oColumn:DisplayFilterPattern := .F.
oColumn:DisplayFilterDate := .T.
oColumn:FilterList := 9474/*exShowExclude+exShowFocusItem+exShowCheckBox+exNoItems*/
oItems := oList:Items()
oItems:Add("12/27/2010")
oItems:Add("12/28/2010")
oItems:Add("12/29/2010")
oItems:Add("12/30/2010")
oItems:Add("12/31/2010")
oList:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
434
|
How can I display a calendar control inside the drop down filter window

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oColumn
LOCAL oItems
LOCAL oList
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:BeginUpdate()
oColumn := oList:Columns():Add("Date")
oColumn:SortType := 2/*SortDate*/
oColumn:DisplayFilterButton := .T.
oColumn:DisplayFilterPattern := .F.
oColumn:DisplayFilterDate := .T.
oColumn:FilterList := 1282/*exShowFocusItem+exShowCheckBox+exNoItems*/
oItems := oList:Items()
oItems:Add("12/27/2010")
oItems:Add("12/28/2010")
oItems:Add("12/29/2010")
oItems:Add("12/30/2010")
oItems:Add("12/31/2010")
oList:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
433
|
Is it possible to include the dates as checkb-boxes in the drop down filter window

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oColumn
LOCAL oItems
LOCAL oList
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:BeginUpdate()
oColumn := oList:Columns():Add("Dates")
oColumn:SortType := 2/*SortDate*/
oColumn:DisplayFilterButton := .T.
oColumn:DisplayFilterPattern := .T.
oColumn:DisplayFilterDate := .T.
oColumn:FilterList := 1280/*exShowFocusItem+exShowCheckBox*/
oColumn:Filter := "to 12/27/2010"
oColumn:FilterType := 4/*exDate*/
oItems := oList:Items()
oItems:Add("12/27/2010")
oItems:Add("12/28/2010")
oItems:Add("12/29/2010")
oItems:Add("12/30/2010")
oItems:Add("12/31/2010")
oList:ApplyFilter()
oList:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
432
|
How can I filter items for dates before a specified date

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oColumn
LOCAL oItems
LOCAL oList
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:BeginUpdate()
oColumn := oList:Columns():Add("Dates")
oColumn:SortType := 2/*SortDate*/
oColumn:DisplayFilterButton := .T.
oColumn:DisplayFilterPattern := .T.
oColumn:DisplayFilterDate := .T.
oColumn:FilterList := 1026/*exShowFocusItem+exNoItems*/
oColumn:Filter := "to 12/27/2010"
oColumn:FilterType := 4/*exDate*/
oItems := oList:Items()
oItems:Add("12/27/2010")
oItems:Add("12/28/2010")
oItems:Add("12/29/2010")
oItems:Add("12/30/2010")
oItems:Add("12/31/2010")
oList:ApplyFilter()
oList:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
431
|
Is it possible to filter dates

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oColumn
LOCAL oItems
LOCAL oList
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:BeginUpdate()
oColumn := oList:Columns():Add("Dates")
oColumn:SortType := 2/*SortDate*/
oColumn:DisplayFilterButton := .T.
oColumn:DisplayFilterPattern := .T.
oColumn:DisplayFilterDate := .T.
oColumn:FilterList := 1026/*exShowFocusItem+exNoItems*/
oItems := oList:Items()
oItems:Add("12/27/2010")
oItems:Add("12/28/2010")
oItems:Add("12/29/2010")
oItems:Add("12/30/2010")
oItems:Add("12/31/2010")
oList:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
430
|
Is it possible to change the Exclude field name to something different, in the drop down filter window

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oColumn
LOCAL oItems
LOCAL oList
LOCAL h
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:BeginUpdate()
oList:SetProperty("Description",25/*exFilterBarExclude*/,"Leaving out")
oColumn := oList:Columns():Add("Items")
oColumn:DisplayFilterButton := .T.
oColumn:DisplayFilterPattern := .F.
oColumn:FilterList := 9472/*exShowExclude+exShowFocusItem+exShowCheckBox*/
oItems := oList:Items()
h := oItems:Add("Root 1")
oItems:Add("Child 1")
oItems:Add("Child 2")
h := oItems:Add("Root 2")
oItems:Add("Child 1")
oList:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
429
|
How can I display the Exclude field in the drop down filter window

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oColumn
LOCAL oItems
LOCAL oList
LOCAL h
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:BeginUpdate()
oColumn := oList:Columns():Add("Items")
oColumn:DisplayFilterButton := .T.
oColumn:DisplayFilterPattern := .F.
oColumn:FilterList := 9472/*exShowExclude+exShowFocusItem+exShowCheckBox*/
oItems := oList:Items()
h := oItems:Add("Root 1")
oItems:Add("Child 1")
oItems:Add("Child 2")
h := oItems:Add("Root 2")
oItems:Add("Child 1")
oList:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
428
|
Is it possible to show and ensure the focused item from the control, in the drop down filter window

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oColumn
LOCAL oItems
LOCAL oList
LOCAL h
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:BeginUpdate()
oColumn := oList:Columns():Add("Items")
oColumn:DisplayFilterButton := .T.
oColumn:DisplayFilterPattern := .F.
oColumn:FilterList := 1280/*exShowFocusItem+exShowCheckBox*/
oItems := oList:Items()
h := oItems:Add("Root 1")
oItems:Add("Child 1")
oItems:Add("Child 2")
h := oItems:Add("Root 2")
oItems:Add("Child 1")
oItems:SetProperty("SelectItem",oItems:Add("Child 2"),.T.)
oList:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
427
|
Is it possible to show only blanks items with no listed items from the control

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oColumn
LOCAL oItems
LOCAL oList
LOCAL h
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:BeginUpdate()
oColumn := oList:Columns():Add("Items")
oColumn:DisplayFilterButton := .T.
oColumn:DisplayFilterPattern := .F.
oColumn:FilterList := 16386/*exShowBlanks+exNoItems*/
oItems := oList:Items()
h := oItems:Add("Root 1")
oItems:Add("Child 1")
oItems:Add("Child 2")
h := oItems:Add("Root 2")
oItems:Add("Child 1")
oItems:Add("Child 2")
oList:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
426
|
How can I include the blanks items in the drop down filter window

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oColumn
LOCAL oItems
LOCAL oList
LOCAL h
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:BeginUpdate()
oColumn := oList:Columns():Add("Items")
oColumn:DisplayFilterButton := .T.
oColumn:DisplayFilterPattern := .F.
oColumn:FilterList := 16640/*exShowBlanks+exShowCheckBox*/
oItems := oList:Items()
h := oItems:Add("Root 1")
oItems:Add("Child 1")
oItems:Add("Child 2")
h := oItems:Add("Root 2")
oItems:Add("Child 1")
oItems:Add("Child 2")
oList:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
425
|
How can I select multiple items in the drop down filter window, using check-boxes

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oColumn
LOCAL oItems
LOCAL oList
LOCAL h
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:BeginUpdate()
oColumn := oList:Columns():Add("Items")
oColumn:DisplayFilterButton := .T.
oColumn:DisplayFilterPattern := .F.
oColumn:FilterList := 256/*exShowCheckBox*/
oItems := oList:Items()
h := oItems:Add("Root 1")
oItems:Add("Child 1")
oItems:Add("Child 2")
h := oItems:Add("Root 2")
oItems:Add("Child 1")
oItems:Add("Child 2")
oList:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
424
|
Is it possible to allow a single item being selected in the drop down filter window

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oColumn
LOCAL oItems
LOCAL oList
LOCAL h
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:BeginUpdate()
oColumn := oList:Columns():Add("Items")
oColumn:DisplayFilterButton := .T.
oColumn:DisplayFilterPattern := .F.
oColumn:FilterList := 128/*exSingleSel*/
oItems := oList:Items()
h := oItems:Add("Root 1")
oItems:Add("Child 1")
oItems:Add("Child 2")
h := oItems:Add("Root 2")
oItems:Add("Child 1")
oItems:Add("Child 2")
oList:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
423
|
How can I display no (All) item in the drop down filter window

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oColumn
LOCAL oItems
LOCAL oList
LOCAL h
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:BeginUpdate()
oList:SetProperty("Description",0/*exFilterBarAll*/,"")
oColumn := oList:Columns():Add("Items")
oColumn:DisplayFilterButton := .T.
oColumn:DisplayFilterPattern := .T.
oColumn:FilterList := 2/*exNoItems*/
oItems := oList:Items()
h := oItems:Add("Root 1")
oItems:Add("Child 1")
oItems:Add("Child 2")
h := oItems:Add("Root 2")
oItems:Add("Child 1")
oItems:Add("Child 2")
oList:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
422
|
Is it possible to display no items in the drop down filter window, so only the pattern is visible

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oColumn
LOCAL oItems
LOCAL oList
LOCAL h
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:BeginUpdate()
oColumn := oList:Columns():Add("Items")
oColumn:DisplayFilterButton := .T.
oColumn:DisplayFilterPattern := .T.
oColumn:FilterList := 2/*exNoItems*/
oItems := oList:Items()
h := oItems:Add("Root 1")
oItems:Add("Child 1")
oItems:Add("Child 2")
h := oItems:Add("Root 2")
oItems:Add("Child 1")
oItems:Add("Child 2")
oList:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
421
|
How can I sort the value gets listed in the drop down filter window

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oColumn,oColumn1
LOCAL oItems
LOCAL oList
LOCAL h
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:MarkSearchColumn := .F.
oList:SetProperty("Description",0/*exFilterBarAll*/,"")
oList:SetProperty("Description",1/*exFilterBarBlanks*/,"")
oList:SetProperty("Description",2/*exFilterBarNonBlanks*/,"")
oColumn := oList:Columns():Add("P1")
oColumn:DisplayFilterButton := .T.
oColumn:DisplayFilterPattern := .F.
oColumn:FilterList := 16/*exSortItemsDesc*/
oColumn1 := oList:Columns():Add("P2")
oColumn1:DisplayFilterButton := .T.
oColumn1:DisplayFilterPattern := .F.
oColumn1:FilterList := 32/*exSortItemsAsc*/
oItems := oList:Items()
h := oItems:Add("Z3")
oItems:SetProperty("Caption",h,1,"C")
oItems:SetProperty("Caption",oItems:Add("Z1"),1,"B")
oItems:SetProperty("Caption",oItems:Add("Z2"),1,"A")
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
420
|
How can I add or change the padding (spaces) for captions in the control's header

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oColumn
LOCAL oList
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:BeginUpdate()
oList:Columns():Add("Padding-Left"):SetProperty("Def",52/*exHeaderPaddingLeft*/,18)
oColumn := oList:Columns():Add("Padding-Right")
oColumn:SetProperty("Def",53/*exHeaderPaddingRight*/,18)
oColumn:HeaderAlignment := 2/*RightAlignment*/
oList:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
419
|
Do you have any plans to add cell spacing and cell padding to the cells

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oColumn
LOCAL oItems
LOCAL oList
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:BeginUpdate()
oList:DrawGridLines := -2/*0xfffffffc+exVLines*/
oColumn := oList:Columns():Add("Padding-Left")
oColumn:SetProperty("Def",0/*exCellHasCheckBox*/,.T.)
oColumn:SetProperty("Def",48/*exCellPaddingLeft*/,18)
oList:Columns():Add("No-Padding"):SetProperty("Def",0/*exCellHasCheckBox*/,.T.)
oList:Columns():Add("Empty"):Position := 0
oItems := oList:Items()
oItems:SetProperty("Caption",oItems:Add("Item A.1"),1,"Item A.2")
oItems:SetProperty("Caption",oItems:Add("Item B.1"),1,"Item B.2")
oItems:SetProperty("Caption",oItems:Add("Item C.1"),1,"Item C.2")
oList:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
418
|
Is it possible display numbers in the same format no matter of regional settings in the control panel

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oItems
LOCAL oList
LOCAL h
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:BeginUpdate()
oList:Columns():Add("Def"):SetProperty("Def",17/*exCaptionFormat*/,1)
oItems := oList:Items()
h := oItems:Add(100000.27)
oItems:SetProperty("FormatCell",h,0,"(value format '') + ' <fgcolor=808080>(default positive)'")
h := oItems:Add(100000.27)
oItems:SetProperty("FormatCell",h,0,"(value format '2|.|3|,|1|1')")
h := oItems:Add(-100000.27)
oItems:SetProperty("FormatCell",h,0,"(value format '') + ' <fgcolor=808080>(default negative)'")
h := oItems:Add(-100000.27)
oItems:SetProperty("FormatCell",h,0,"(value format '2|.|3|,|1|1')")
oList:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
417
|
Is it possible to add a 0 for numbers less than 1 instead .7 to show 0.8

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oItems
LOCAL oList
LOCAL h
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:BeginUpdate()
oList:Columns():Add("Def"):SetProperty("Def",17/*exCaptionFormat*/,1)
oItems := oList:Items()
h := oItems:Add(0.27)
oItems:SetProperty("FormatCell",h,0,"(value format '') + ' <fgcolor=808080>(default)'")
h := oItems:Add(0.27)
oItems:SetProperty("FormatCell",h,0,"(value format '|||||0') + ' <fgcolor=808080>(Display no leading zeros)'")
oList:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
416
|
How can I specify the format for negative numbers

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oItems
LOCAL oList
LOCAL h
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:BeginUpdate()
oList:Columns():Add("Def"):SetProperty("Def",17/*exCaptionFormat*/,1)
oItems := oList:Items()
h := oItems:Add(-100000.27)
oItems:SetProperty("FormatCell",h,0,"(value format '') + ' <fgcolor=808080>(default)'")
h := oItems:Add(-100000.27)
oItems:SetProperty("FormatCell",h,0,"(value format '||||1') + ' <fgcolor=808080>(Negative sign, number; for example, -1.1)'")
oList:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
415
|
Is it possible to change the grouping character when display numbers

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oItems
LOCAL oList
LOCAL h
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:BeginUpdate()
oList:Columns():Add("Def"):SetProperty("Def",17/*exCaptionFormat*/,1)
oItems := oList:Items()
h := oItems:Add(100000.27)
oItems:SetProperty("FormatCell",h,0,"(value format '') + ' <fgcolor=808080>(default)'")
h := oItems:Add(100000.27)
oItems:SetProperty("FormatCell",h,0,"(value format '|||-') + ' <fgcolor=808080>(grouping character is -)'")
oList:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
414
|
How can I display numbers with 2 digits in each group

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oItems
LOCAL oList
LOCAL h
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:BeginUpdate()
oList:Columns():Add("Def"):SetProperty("Def",17/*exCaptionFormat*/,1)
oItems := oList:Items()
h := oItems:Add(100000.27)
oItems:SetProperty("FormatCell",h,0,"(value format '') + ' <fgcolor=808080>(default)'")
h := oItems:Add(100000.27)
oItems:SetProperty("FormatCell",h,0,"(value format '||2') + ' <fgcolor=808080>(grouping by 2 digits)'")
oList:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
413
|
How can I display my numbers using a different decimal separator

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oItems
LOCAL oList
LOCAL h
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:BeginUpdate()
oList:Columns():Add("Def"):SetProperty("Def",17/*exCaptionFormat*/,1)
oItems := oList:Items()
h := oItems:Add(100.27)
oItems:SetProperty("FormatCell",h,0,"(value format '') + ' <fgcolor=808080>(default)'")
h := oItems:Add(100.27)
oItems:SetProperty("FormatCell",h,0,"(value format '|;') + ' <fgcolor=808080>(decimal separator is <b>;</b>)'")
oList:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
412
|
Is it possible to display the numbers using 3 (three) digits

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oItems
LOCAL oList
LOCAL h
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:BeginUpdate()
oList:Columns():Add("Def"):SetProperty("Def",17/*exCaptionFormat*/,1)
oItems := oList:Items()
h := oItems:Add(100.27)
oItems:SetProperty("FormatCell",h,0,"(value format '') + ' <fgcolor=808080>(default)'")
h := oItems:Add(100.27)
oItems:SetProperty("FormatCell",h,0,"(value format '3') + ' <fgcolor=808080>(3 digits)'")
h := oItems:Add(100.27)
oItems:SetProperty("FormatCell",h,0,"(value format 2) + ' <fgcolor=808080>(2 digits)'")
h := oItems:Add(100.27)
oItems:SetProperty("FormatCell",h,0,"(value format 1) + ' <fgcolor=808080>(1 digit)'")
oList:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
411
|
Is it possible to format numbers

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oColumn,oColumn1,oColumn2,oColumn3
LOCAL oColumns
LOCAL oItems
LOCAL oList
LOCAL h
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:BeginUpdate()
oList:MarkSearchColumn := .F.
oList:SetProperty("SelBackColor",oList:BackColor())
oList:SetProperty("SelForeColor",oList:ForeColor())
oList:ShowFocusRect := .T.
oColumns := oList:Columns()
oColumns:Add("Name")
oColumn := oColumns:Add("A")
oColumn:SortType := 1/*SortNumeric*/
oColumn:AllowSizing := .F.
oColumn:Width := 36
oColumn:FormatColumn := "len(value) ? value + ' +'"
oColumn1 := oColumns:Add("B")
oColumn1:SortType := 1/*SortNumeric*/
oColumn1:AllowSizing := .F.
oColumn1:Width := 36
oColumn1:FormatColumn := "len(value) ? value + ' +'"
oColumn2 := oColumns:Add("C")
oColumn2:SortType := 1/*SortNumeric*/
oColumn2:AllowSizing := .F.
oColumn2:Width := 36
oColumn2:FormatColumn := "len(value) ? value + ' ='"
oColumn3 := oColumns:Add("A+B+C")
oColumn3:SortType := 1/*SortNumeric*/
oColumn3:Width := 64
oColumn3:ComputedField := "dbl(%1)+dbl(%2)+dbl(%3)"
oColumn3:FormatColumn := "type(value) in (0,1) ? 'null' : ( dbl(value)<0 ? '<fgcolor=FF0000>'+ (value format '2|.|3|,|1' ) : (dbl(value)>0 ? '<fgcolor=0000FF>+'+(value format '2|.|3|,' ): '0.00') )"
oColumn3:SetProperty("Def",17/*exCaptionFormat*/,1)
oItems := oList:Items()
h := oItems:Add("Item")
oItems:SetProperty("CaptionFormat",h,4,2/*exComputedField*/)
h := oItems:Add("Item 1")
oItems:SetProperty("Caption",h,1,7)
oItems:SetProperty("Caption",h,2,3)
oItems:SetProperty("Caption",h,3,1)
h := oItems:Add("Item 2")
oItems:SetProperty("Caption",h,1,-2)
oItems:SetProperty("Caption",h,2,-2)
oItems:SetProperty("Caption",h,3,-4)
h := oItems:Add("Item 3")
oItems:SetProperty("Caption",h,1,2)
oItems:SetProperty("Caption",h,2,2)
oItems:SetProperty("Caption",h,3,-4)
oList:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
410
|
Is it possible background color displayed when the mouse passes over an item

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oItems
LOCAL oList
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:BeginUpdate()
oList:Columns():Add("Def")
oList:SetProperty("HotBackColor",AutomationTranslateColor( GraMakeRGBColor ( { 0,0,128 } ) , .F. ))
oList:SetProperty("HotForeColor",AutomationTranslateColor( GraMakeRGBColor ( { 255,255,255 } ) , .F. ))
oItems := oList:Items()
oItems:Add("Item A")
oItems:Add("Item B")
oItems:Add("Item C")
oList:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
409
|
Is it possible to specify the cell's value but still want to display some formatted text instead the value

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oColumn
LOCAL oColumns
LOCAL oItems
LOCAL oList
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:BeginUpdate()
oList:MarkSearchColumn := .F.
oColumns := oList:Columns()
oColumns:Add("Name")
oColumn := oColumns:Add("Values")
oColumn:SortType := 1/*SortNumeric*/
oColumn:AllowSizing := .F.
oColumn:Width := 64
oColumn:FormatColumn := "((0:=dbl(value)) < 10? '<fgcolor=808080><font ;7>' :'<b>') + currency(=:0)"
oColumn:SetProperty("Def",17/*exCaptionFormat*/,1)
oItems := oList:Items()
oItems:SetProperty("FormatCell",oItems:Add("Item A"),1,"`<none>`")
oItems:SetProperty("Caption",oItems:Add("Item 1"),1,10)
oItems:SetProperty("Caption",oItems:Add("Item 2"),1,15)
oItems:SetProperty("Caption",oItems:Add("Item 3"),1,25)
oList:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
408
|
I am using the FormatColumn to display the current currency, but would like hide some values. Is it possible

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oColumn
LOCAL oColumns
LOCAL oItems
LOCAL oList
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:BeginUpdate()
oList:MarkSearchColumn := .F.
oColumns := oList:Columns()
oColumns:Add("Name")
oColumn := oColumns:Add("Values")
oColumn:SortType := 1/*SortNumeric*/
oColumn:AllowSizing := .F.
oColumn:Width := 64
oColumn:FormatColumn := "((0:=dbl(value)) < 10? '<fgcolor=808080><font ;7>' :'<b>') + currency(=:0)"
oColumn:SetProperty("Def",17/*exCaptionFormat*/,1)
oItems := oList:Items()
oItems:SetProperty("FormatCell",oItems:Add("Item A"),1," ")
oItems:SetProperty("Caption",oItems:Add("Item 1"),1,10)
oItems:SetProperty("Caption",oItems:Add("Item 2"),1,15)
oItems:SetProperty("Caption",oItems:Add("Item 3"),1,25)
oList:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
407
|
I am using the FormatColumn to format my columns. Is it possible to ignore the SelForeColor, so the foreground color for selected items does not override my settings

PROCEDURE OnSelectionChanged(oList)
LOCAL oItems
oItems := oList:Items()
oItems:ClearItemBackColor(-1)
oItems:SetProperty("ItemBackColor",oItems:SelectedItem(0),AutomationTranslateColor( GraMakeRGBColor ( { 128,255,255 } ) , .F. ))
RETURN
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oColumn
LOCAL oColumns
LOCAL oItems
LOCAL oList
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:SelectionChanged := {|| OnSelectionChanged(oList)} /*Fired after a new item is selected.*/
oList:BeginUpdate()
oList:MarkSearchColumn := .F.
oList:SetProperty("SelForeColor",oList:ForeColor())
oList:SetProperty("SelBackColor",oList:BackColor())
oList:ShowFocusRect := .F.
oColumns := oList:Columns()
oColumn := oColumns:Add("Format")
oColumn:FormatColumn := "type(value) in (0,1) ? 'null' : ( dbl(value)<0 ? '<fgcolor=FF0000>'+ (value format '2|.|3|,|1' ) : (dbl(value)>0 ? '<fgcolor=0000FF>+'+(value format '2|.|3|,' ): '0.00') )"
oColumn:SetProperty("Def",17/*exCaptionFormat*/,1)
oItems := oList:Items()
oItems:Add(10)
oItems:Add(-8)
oList:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
406
|
Is it possible to change the height for all items at once

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oItems
LOCAL oList
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:BeginUpdate()
oList:Columns():Add("Items")
oItems := oList:Items()
oItems:Add("Item 1")
oItems:Add("Item 2")
oItems:Add("Item 3")
oItems:Add("Item 4")
oList:EndUpdate()
oList:DefaultItemHeight := 12
oList:Items():SetProperty("ItemHeight",-1,12)
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
405
|
How can I change the shape of the line to be shown when user drag and drop data over the control

PROCEDURE OnOLEStartDrag(oList,Data,AllowedEffects)
/*Data.SetData("data to be dragged")*/
RETURN
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oItems
LOCAL oList
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:OLEStartDrag := {|Data,AllowedEffects| OnOLEStartDrag(oList,Data,AllowedEffects)} /*Occurs when the OLEDrag method is called.*/
oList:OLEDropMode := 1/*exOLEDropManual*/
oList:VisualAppearance():Add(1,"C:\Program Files\Exontrol\ExList\Sample\VB\DragDrop\insert_bottom.ebn")
oList:SetProperty("Background",96/*exListOLEDropPosition*/,0x1000000)
oList:Columns():Add("Default")
oItems := oList:Items()
oItems:Add("Item 1")
oItems:Add("Item 2")
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
404
|
How can I highlight the item from cursor when the user drag and drop data over the control

PROCEDURE OnOLEStartDrag(oList,Data,AllowedEffects)
/*Data.SetData("data to be dragged")*/
RETURN
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oItems
LOCAL oList
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:OLEStartDrag := {|Data,AllowedEffects| OnOLEStartDrag(oList,Data,AllowedEffects)} /*Occurs when the OLEDrag method is called.*/
oList:OLEDropMode := 1/*exOLEDropManual*/
oList:SetProperty("Background",96/*exListOLEDropPosition*/,AutomationTranslateColor( GraMakeRGBColor ( { 1,0,0 } ) , .F. ))
oList:Columns():Add("Default")
oItems := oList:Items()
oItems:Add("Item 1")
oItems:Add("Item 2")
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
403
|
How can I start drag and drop items

PROCEDURE OnOLEStartDrag(oList,Data,AllowedEffects)
/*Data.SetData("to be carried by drag and drop")*/
AllowedEffects := 1
RETURN
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oItems
LOCAL oList
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:OLEStartDrag := {|Data,AllowedEffects| OnOLEStartDrag(oList,Data,AllowedEffects)} /*Occurs when the OLEDrag method is called.*/
oList:BeginUpdate()
oList:OLEDropMode := 1/*exOLEDropManual*/
oList:Columns():Add("Default")
oItems := oList:Items()
oItems:Add("Item 1")
oItems:Add("Item 2")
oList:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
402
|
When I'm trying to show string with "line break" character (vbCrLF) in a textbox, it shows 2 squares. Is there any way to hide these squares

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oColumn,oColumn1,oColumn2
LOCAL oColumns
LOCAL oItems
LOCAL oList
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oColumns := oList:Columns()
oColumns:Add("Value")
oColumn := oColumns:Add("CellSingleLine = False")
oColumn:ComputedField := "%0"
oColumn:SetProperty("Def",16/*exCellSingleLine*/,.F.)
oColumn1 := oColumns:Add("FormatColumn/replace CRLF")
oColumn1:ComputedField := "%0"
oColumn1:FormatColumn := "value replace `\r\n` with ``"
oColumn2 := oColumns:Add("FormatColumn/replace TAB,CRLF")
oColumn2:ComputedField := "%0"
oColumn2:FormatColumn := "(value replace `\t` with ``) replace `\r\n` with ``"
oItems := oList:Items()
oItems:Add("a\ta\r\nb\tb")
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
401
|
The Column.Alignment property does not seem to work for cells with images in them. What can be done

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oColumn
LOCAL oItems
LOCAL oList
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oList := XbpActiveXControl():new( oForm:drawingArea )
oList:CLSID := "Exontrol.List.1" /*{1B0CA5A8-2107-4460-BBEE-F25F8801B2F6}*/
oList:create(,, {10,60},{610,370} )
oList:BeginUpdate()
oList:Images("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yNAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=")
oList:DrawGridLines := -1/*exAllLines*/
oList:HeaderHeight := 24
oList:DefaultItemHeight := 24
oColumn := oList:Columns():Add("Image")
oColumn:AllowSizing := .F.
oColumn:Width := 32
oColumn:HTMLCaption := "<img>1</img>"
oColumn:HeaderAlignment := 1/*CenterAlignment*/
oColumn:Alignment := 1/*CenterAlignment*/
oColumn:SetProperty("Def",17/*exCaptionFormat*/,1)
oList:Columns():Add("Rest")
oItems := oList:Items()
oItems:Add("<img>1</img>")
oItems:Add("<img>2</img>")
oItems:Add("<img>3</img>")
oList:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|